package com.sniff.atp.modules.test.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 需求登记
 * </p>
 *
 * @author macro
 * @since 2023-09-07
 */
@Getter
@Setter
@TableName("demand_report")
@ApiModel(value = "DemandReport对象", description = "需求登记")
public class DemandReport implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("自增id")
    @TableId(value = "demand_id", type = IdType.AUTO)
    private Long demandId;

    @ApiModelProperty("需求名称")
    private String demandName;

    @ApiModelProperty("所属业务线")
    private String demandLine;

    @ApiModelProperty("beework项目id")
    private Integer beeworkProductId;

    @ApiModelProperty("beework项目名称")
    private String beeworkProductName;

    @ApiModelProperty("需求类型，1：项目，2：日常迭代，3：技改，4：快速需求，5：bugfix")
    private String demandType;

    @ApiModelProperty("需求状态")
    private String demandStatus;

    @ApiModelProperty("需求评审次数")
    private Long demandReviewNums;

    @ApiModelProperty("bug总数")
    private Long totalBugNums;

    @ApiModelProperty("冒烟通过率")
    private Double mockPassRate;

    @ApiModelProperty("项目总结链接")
    private String reviewLink;

    @ApiModelProperty("发布链接")
    private String reportLink;

    @ApiModelProperty("故障链接")
    private String bugReviewLink;

    @ApiModelProperty("demo链接")
    private String demoLink;

    @ApiModelProperty("技术方案链接")
    private String technicalSolutionsLink;

    @ApiModelProperty("项目报表")
    private String productReport;



    @ApiModelProperty("PM")
    private String demandPm;

    @ApiModelProperty("PD")
    private String demandPd;

    @ApiModelProperty("PTM")
    private String demandPtm;

    @ApiModelProperty("UI")
    private String demandUi;

    @ApiModelProperty("后端开发")
    private String demandBackDevelop;

    @ApiModelProperty("前端开发")
    private String demandFrontDevelop;

    @ApiModelProperty("测试人员")
    private String demandTest;

    @ApiModelProperty("数据开发")
    private String dataDevelop;

    @ApiModelProperty("其他人员")
    private String demandOthers;

    @ApiModelProperty("业务方")
    private String demandBusiness;




    @ApiModelProperty("项目排期")
    private String productSchedule;

    @ApiModelProperty("需求评审时间")
    private Date demandReviewDate;

    @ApiModelProperty("技术方案评审时间")
    private Date technicalProposalDate;

    @ApiModelProperty("技术方案开始时间")
    private Date technicalProposalDateStart;

    @ApiModelProperty("技术方案结束时间")
    private Date technicalProposalDateEnd;


    @ApiModelProperty("开发开始时间")
    private Date developDateStart;

    @ApiModelProperty("开发结束时间")
    private Date developDateEnd;

    @ApiModelProperty("tc评审时间")
    private Date tcProposalDate;

    @ApiModelProperty("tc开始时间")
    private Date tcWriteDateStart;

    @ApiModelProperty("tc结束时间")
    private Date tcWriteDateDnd;

    @ApiModelProperty("联调时间开始")
    private Date joinDebuggerDateStart;

    @ApiModelProperty("联调时间结束")
    private Date joinDebuggerDateEnd;

    @ApiModelProperty("冒烟时间开始")
    private Date smokeDateStart;

    @ApiModelProperty("冒烟时间结束")
    private Date smokeDateEnd;

    @ApiModelProperty("提测时间")
    private Date submitApplicationDate;

    @ApiModelProperty("测试环境测试时间开始")
    private Date testEnvironmentDateStart;

    @ApiModelProperty("测试环境测试时间结束")
    private Date testEnvironmentDateEnd;

    @ApiModelProperty("是否延期")
    private String isDeferred;

    @ApiModelProperty("预发环境测试时间开始")
    private Date preEnvironmentDateStart;

    @ApiModelProperty("预发环境测试时间结束")
    private Date preEnvironmentDateEnd;

    @ApiModelProperty("产品验收时间")
    private Date managerAcceptanceDate;

    @ApiModelProperty("业务验收时间")
    private Date businessAcceptanceDate;

    @ApiModelProperty("发布时间")
    private Date publishDate;

    @ApiModelProperty("最终发布时间")
    private Date finalPublishDate;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("bugId")
    private Long bugId;

    @TableField(exist = false)
    private Date startTime;

    @TableField(exist = false)
    private Date endTime;

    @TableField(exist = false)
    private Date updateStartTime;

    @TableField(exist = false)
    private Date updateEndTime;

    @TableField(exist = false)
    private Integer pageSize;

    @TableField(exist = false)
    private Integer pageNum;

}
